<?php
namespace App\Object;

use Tsy\Library\Object;
use Tsy\Plugs\User\UserObject;

/**
 * 用户账户基本信息
 * 其它信息请使用扩展表的形式
 * @package App\Object
 */
class UserAccountObject extends UserObject
{
    /**

     * 账户编号 UID int(11) 自增 主键 必填  
     * 账户名 Account char(250)   必填  
     * 拼音 AccountPY char(250)   必填  
     * 密码 PWD char(250)   必填  
     * 状态 Status tinyint(1)   必填  
     * 创建时间 CTime datetime   必填  
     */
    /**
     * @var string
     */
    public $LoginView='UserAccount';
    protected $main='UserAccount';
    protected $pk='UID';
    public $addFields=['Account','AccountPY','PWD','Status','CTime'];//允许添加的字段，如果数组最后一个元素值为true则表示排除
    public $saveFields=['Account','AccountPY','PWD','Status','CTime'];//允许修改的字段，如果数组最后一个元素值为true则表示排除
    public $addFieldsConfig=[
    
//      'Account'=>[//字段名称:账户名,数据类型:char(250),注释:
//            self::FIELD_CONFIG_DEFAULT=>'null',//当 账户名(Account) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_DEFAULT_FUNCTION=>'null',//当 账户名(Account) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE=>'null',//不管 账户名(Account) 的值是否存在，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE_FUNCTION=>'null',//不管 账户名(Account) 的值是否存在，取该值或该函数的值
//      ],

//      'AccountPY'=>[//字段名称:拼音,数据类型:char(250),注释:
//            self::FIELD_CONFIG_DEFAULT=>'null',//当 拼音(AccountPY) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_DEFAULT_FUNCTION=>'null',//当 拼音(AccountPY) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE=>'null',//不管 拼音(AccountPY) 的值是否存在，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE_FUNCTION=>'null',//不管 拼音(AccountPY) 的值是否存在，取该值或该函数的值
//      ],

//      'PWD'=>[//字段名称:密码,数据类型:char(250),注释:
//            self::FIELD_CONFIG_DEFAULT=>'null',//当 密码(PWD) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_DEFAULT_FUNCTION=>'null',//当 密码(PWD) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE=>'null',//不管 密码(PWD) 的值是否存在，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE_FUNCTION=>'null',//不管 密码(PWD) 的值是否存在，取该值或该函数的值
//      ],

//      'Status'=>[//字段名称:状态,数据类型:tinyint(1),注释:
//            self::FIELD_CONFIG_DEFAULT=>'null',//当 状态(Status) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_DEFAULT_FUNCTION=>'null',//当 状态(Status) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE=>'null',//不管 状态(Status) 的值是否存在，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE_FUNCTION=>'null',//不管 状态(Status) 的值是否存在，取该值或该函数的值
//      ],

        'CTime'=>[//字段名称:创建时间,数据类型:datetime,注释:
//            self::FIELD_CONFIG_DEFAULT=>'null',//当 创建时间(CTime) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_DEFAULT_FUNCTION=>'null',//当 创建时间(CTime) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE=>'null',//不管 创建时间(CTime) 的值是否存在，取该值或该函数的值,
              self::FIELD_CONFIG_VALUE_FUNCTION=>'date("Y-m-d H:i:s")',//不管 创建时间(CTime) 的值是否存在，取该值或该函数的值
        ]
    ];
    public $saveFieldsConfig=[
    
//      'Account'=>[//字段名称:账户名,数据类型:char(250),注释:
//            self::FIELD_CONFIG_DEFAULT=>'null',//当 账户名(Account) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_DEFAULT_FUNCTION=>'null',//当 账户名(Account) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE=>'null',//不管 账户名(Account) 的值是否存在，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE_FUNCTION=>'null',//不管 账户名(Account) 的值是否存在，取该值或该函数的值
//      ],

//      'AccountPY'=>[//字段名称:拼音,数据类型:char(250),注释:
//            self::FIELD_CONFIG_DEFAULT=>'null',//当 拼音(AccountPY) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_DEFAULT_FUNCTION=>'null',//当 拼音(AccountPY) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE=>'null',//不管 拼音(AccountPY) 的值是否存在，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE_FUNCTION=>'null',//不管 拼音(AccountPY) 的值是否存在，取该值或该函数的值
//      ],

//      'PWD'=>[//字段名称:密码,数据类型:char(250),注释:
//            self::FIELD_CONFIG_DEFAULT=>'null',//当 密码(PWD) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_DEFAULT_FUNCTION=>'null',//当 密码(PWD) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE=>'null',//不管 密码(PWD) 的值是否存在，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE_FUNCTION=>'null',//不管 密码(PWD) 的值是否存在，取该值或该函数的值
//      ],

//      'Status'=>[//字段名称:状态,数据类型:tinyint(1),注释:
//            self::FIELD_CONFIG_DEFAULT=>'null',//当 状态(Status) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_DEFAULT_FUNCTION=>'null',//当 状态(Status) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE=>'null',//不管 状态(Status) 的值是否存在，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE_FUNCTION=>'null',//不管 状态(Status) 的值是否存在，取该值或该函数的值
//      ],

        'CTime'=>[//字段名称:创建时间,数据类型:datetime,注释:
//            self::FIELD_CONFIG_DEFAULT=>'null',//当 创建时间(CTime) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_DEFAULT_FUNCTION=>'null',//当 创建时间(CTime) 的值不存在时，取该值或该函数的值,
//            self::FIELD_CONFIG_VALUE=>'null',//不管 创建时间(CTime) 的值是否存在，取该值或该函数的值,
              self::FIELD_CONFIG_VALUE_FUNCTION=>'unset',//不管 创建时间(CTime) 的值是否存在，取该值或该函数的值
        ]
    ];
    protected $property=[
        'Groups'=>[//账户编号  用户分组  属性
            self::RELATION_TABLE_NAME=>'UserGroupLink',//属性关联表
            self::RELATION_TABLE_COLUMN=>'UID',//关联表中的关联字段
            self::RELATION_MAIN_COLUMN=>'UID',//主笔中的关联字段
            self::RELATION_TABLE_PROPERTY=>self::PROPERTY_ARRAY,            
        ],
    ];
    protected $link=[
       'Groups'=>[
            self::RELATION_TABLE_NAME=>'UserGroupLink',
            self::RELATION_TABLE_COLUMN=>'UID',
            self::RELATION_TABLE_LINK_HAS_PROPERTY=>true,
            self::RELATION_TABLE_FIELDS=>['UGLID','UID','UGID','CTime'],
            self::RELATION_TABLE_LINK_TABLES=>[
                 'UserGroup'=>[
                    self::RELATION_TABLE_COLUMN=>'UGID',
                    self::RELATION_TABLE_FIELDS=>['UGID','Title','PUGID','L','CTime'],
                ],
'UserAccount'=>[
                    self::RELATION_TABLE_COLUMN=>'UID',
                    self::RELATION_TABLE_FIELDS=>['UID','Account','AccountPY','PWD','Status','CTime'],
                ],
            ]
        ],
    ];
    protected $searchFields=['UID','Account','AccountPY','PWD','Status','CTime'];
    protected $searchTable='UserAccount';
    protected $searchWFieldsConf=[
        'UserAccount'=>'UserAccount',        
    ];
    protected $searchWFieldsGroup=[
        'UserAccount'=>['UID','Account','AccountPY','PWD','Status','CTime'],
    ];
}